MACE: Model-inference-Assisted Concolic Exploration for Protocol and Vulnerability Discovery
نویسندگان
چکیده
Program state-space exploration is central to software security, testing, and verification. In this paper, we propose a novel technique for state-space exploration of software that maintains an ongoing interaction with its environment. Our technique uses a combination of symbolic and concrete execution to build an abstract model of the analyzed application, in the form of a finite-state automaton, and uses the model to guide further state-space exploration. Through exploration, MACE further refines the abstract model. Using the abstract model as a scaffold, our technique wields more control over the search process. In particular: (1) shifting search to different parts of the search-space becomes easier, resulting in higher code coverage, and (2) the search is less likely to get stuck in small local state-subspaces (e.g., loops) irrelevant to the application’s interaction with the environment. Preliminary experimental results show significant increases in the code coverage and exploration depth. Further, our approach found a number of new deep vulnerabilities.
منابع مشابه
Scaling Concolic Execution of Binary Programs for Security Applications
Concolic execution is a technique for program analysis that makes the values of certain inputs symbolic, symbolically executes a program’s code, and computes a symbolic logical formula to represent a desired behavior of the program under analysis. The computed formula is then solved by a decision procedure to determine whether the desired behavior is feasible and, if so, provide an example prog...
متن کاملCLORIFI: software vulnerability discovery using code clone verification
Software vulnerability has long been considered an important threat to the system safety. A vulnerability is often reproduced because of the frequent code reuse by programmers. Security patches are usually not propagated to all code clones; however, they could be leveraged to discover unknown vulnerabilities. Static code auditing approaches are frequently proposed to scan source codes for secur...
متن کاملConcolic Testing of Sequential and Concurrent Programs
Testing using manually generated test cases is the primary technique used in industry to improve reliability of software—in fact, such ad hoc testing accounts for over half of the typical cost of software development. We propose new methods for systematically and automatically testing sequential and concurrent programs. The methods are based on two new techniques: concolic testing and race-dete...
متن کاملExperimental and Simulation - Assisted Feasibility Study of Gas Injection to Increase Oil Recovery Using a Combination of Semi-VAPEX and GAGD Techniques
Gas injection into heavy oil reservoirs could result in high ultimate recovery of oil. Experimental studies showed that an application of a combined technology of Gas Assisted Gravity Drainage (GAGD) and Vapor Extraction (VAPEX) could increase final oil recovery of a candidate viscous oil reservoir. In this paper the results of laboratory investigation are presented, including Pressure-Volu...
متن کاملScalable Automated Methods for Dynamic Program Analysis
Testing using manually generated test cases is the primary technique used in industry to improve reliability of software—in fact, such ad hoc testing accounts for over half of the typical cost of software development. We propose new methods for systematically and automatically testing sequential and concurrent programs. The methods are based on three new techniques: concolic testing, race-detec...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2011